﻿<template>
	<div class="card-fill layout-padding">
		<el-card shadow="hover" class="layout-padding-auto">
			<WtmSearcher
				v-model="searchDataProcessRoute"
				@search="
					() => {
						getTableDataProcessRoute();
					}
				"
			>
				<el-row>
					<el-col :xs="24" :lg="8" class="mb20">
						<el-form-item ref="RoutingName_FormItem" prop="RoutingName" :label="$t('message.autotrans._Model_ProcessRoute_RoutingName')">
							<el-input v-model="searchDataProcessRoute.RoutingName" clearable></el-input>
						</el-form-item>
					</el-col>
					<el-col :xs="24" :lg="8" class="mb20">
						<el-form-item ref="RoutingCode_FormItem" prop="RoutingCode" :label="$t('message.autotrans._Model_ProcessRoute_RoutingCode')">
							<el-input v-model="searchDataProcessRoute.RoutingCode" clearable></el-input>
						</el-form-item>
					</el-col>
					<el-col :xs="24" :lg="8" class="mb20">
						<el-form-item ref="ProductId_FormItem" prop="ProductId" :label="$t('message.autotrans._Model_ProcessRoute_ProductId')">
							<el-input v-model="searchDataProcessRoute.ProductId" clearable></el-input>
						</el-form-item>
					</el-col>
					<el-col :xs="24" :lg="8" class="mb20">
						<el-form-item ref="ProductCode_FormItem" prop="ProductCode" :label="$t('message.autotrans._Model_ProcessRoute_ProductCode')">
							<el-input v-model="searchDataProcessRoute.ProductCode" clearable></el-input>
						</el-form-item>
					</el-col>
					<el-col :xs="24" :lg="8" class="mb20">
						<el-form-item ref="ProductName_FormItem" prop="ProductName" :label="$t('message.autotrans._Model_ProcessRoute_ProductName')">
							<el-input v-model="searchDataProcessRoute.ProductName" clearable></el-input>
						</el-form-item>
					</el-col>
					<el-col :xs="24" :lg="8" class="mb20">
						<el-form-item ref="Active_FormItem" prop="Active" :label="$t('message.autotrans._Model_ProcessRoute_Active')">
							<el-select v-model="searchDataProcessRoute.Active" clearable>
								<el-option :key="1" :value="true" :label="$t('message._system.common.vm.tips_bool_true')"></el-option>
								<el-option :key="0" :value="false" :label="$t('message._system.common.vm.tips_bool_false')"></el-option>
							</el-select>
						</el-form-item>
					</el-col>
					<el-col :xs="24" :lg="8" class="mb20">
						<el-form-item ref="Aux_1_FormItem" prop="Aux_1" :label="$t('message.autotrans._Model_ProcessRoute_Aux_1')">
							<el-input v-model="searchDataProcessRoute.Aux_1" clearable></el-input>
						</el-form-item>
					</el-col>
					<el-col :xs="24" :lg="8" class="mb20">
						<el-form-item ref="Aux_2_FormItem" prop="Aux_2" :label="$t('message.autotrans._Model_ProcessRoute_Aux_2')">
							<el-input v-model="searchDataProcessRoute.Aux_2" clearable></el-input>
						</el-form-item>
					</el-col>
					<el-col :xs="24" :lg="8" class="mb20">
						<el-form-item ref="CreateTime_FormItem" prop="CreateTime" :label="$t('message.autotrans._Model_ProcessRoute_CreateTime')">
							<el-date-picker v-model="searchDataProcessRoute.CreateTime" type="daterange" clearable></el-date-picker>
						</el-form-item>
					</el-col>
					<el-col :xs="24" :lg="8" class="mb20">
						<el-form-item ref="UpdateTime_FormItem" prop="UpdateTime" :label="$t('message.autotrans._Model_ProcessRoute_UpdateTime')">
							<el-date-picker v-model="searchDataProcessRoute.UpdateTime" type="daterange" clearable></el-date-picker>
						</el-form-item>
					</el-col>
					<el-col :xs="24" :lg="8" class="mb20">
						<el-form-item ref="CreateBy_FormItem" prop="CreateBy" :label="$t('message.autotrans._Model_ProcessRoute_CreateBy')">
							<el-input v-model="searchDataProcessRoute.CreateBy" clearable></el-input>
						</el-form-item>
					</el-col>
					<el-col :xs="24" :lg="8" class="mb20">
						<el-form-item ref="UpdateBy_FormItem" prop="UpdateBy" :label="$t('message.autotrans._Model_ProcessRoute_UpdateBy')">
							<el-input v-model="searchDataProcessRoute.UpdateBy" clearable></el-input>
						</el-form-item>
					</el-col>
				</el-row>
			</WtmSearcher>

			<div style="text-align: right">
				<WtmButton
					v-auth="'/api/ProcessManagement/ProcessRoute/Create'"
					icon="fa fa-plus"
					type="primary"
					:button-text="$t('message.autotrans.SysCreate')"
					@click="OnCreateClick()"
				/>
				<WtmButton
					v-auth="'/api/ProcessManagement/ProcessRoute/BatchDelete'"
					icon="fa fa-trash"
					type="danger"
					:button-text="$t('message.autotrans.SysDelete')"
					:confirm="$t('message._system.common.vm.deletetip')"
					@click="onBatchDelete()"
				/>
				<WtmButton
					v-auth="'/api/ProcessManagement/ProcessRoute/BatchEdit'"
					icon="fa fa-pencil-square"
					type="primary"
					:button-text="$t('message.autotrans.SysBatchEdit')"
					@click="OnBatchEditClick()"
				/>
				<WtmButton
					v-auth="'/api/ProcessManagement/ProcessRoute/Import'"
					icon="fa fa-tasks"
					type="primary"
					:button-text="$t('message.autotrans.SysImport')"
					@click="OnImportClick()"
				/>
				<WtmButton
					v-auth="'/api/ProcessManagement/ProcessRoute/ProcessRouteExportExcel'"
					icon="fa fa-arrow-circle-down"
					type="primary"
					:button-text="$t('message.autotrans.SysExport')"
					@click="onExport()"
				/>
			</div>
			<WtmTable ref="tableRefProcessRoute" v-bind="tableDataProcessRoute">
				<template #operation>
					<el-table-column :label="$t('message._system.common.vm.operate')" width="180">
						<template v-slot="scope">
							<WtmButton
								v-auth="'/api/ProcessManagement/ProcessRoute/Edit'"
								:is-text="true"
								icon="fa fa-pencil-square"
								type="warning"
								:button-text="$t('message.autotrans.SysEdit')"
								@click="OnEditrowClick(scope.row)"
							/>
							<WtmButton
								v-auth="'/api/ProcessManagement/ProcessRoute/{id}'"
								:is-text="true"
								icon="fa fa-info-circle"
								type="info"
								:button-text="$t('message.autotrans.Page详情')"
								@click="OnDetailsrowClick(scope.row)"
							/>
							<WtmButton
								v-auth="'/api/ProcessManagement/ProcessRoute/BatchDelete'"
								icon="fa fa-trash"
								type="danger"
								:button-text="$t('message.autotrans.SysDelete')"
								:confirm="$t('message._system.common.vm.deletetip')"
								:is-text="true"
								@click="onDelete(scope.row)"
							/>
						</template>
					</el-table-column>
				</template>
			</WtmTable>
		</el-card>
	</div>
</template>

<script setup lang="ts" name="message.autotrans._PageProcessManagementProcessRouteIndex;true;Digitalmes.ProcessManagement.Controllers;ProcessRoute">
import { ElMessageBox, ElMessage, ElLoading } from 'element-plus';
import { defineAsyncComponent, reactive, ref, getCurrentInstance, onMounted, nextTick } from 'vue';
import { processrouteApi } from '/@/api/processmanagement/processroute';
import other, { openAdvDialog } from '/@/utils/other';
import fileApi from '/@/api/file';
import { useRouter } from 'vue-router';
const ci = getCurrentInstance() as any;

const CreateDialog = defineAsyncComponent(() => import('./create.vue'));
const EditDialog = defineAsyncComponent(() => import('./edit.vue'));
const DetailsDialog = defineAsyncComponent(() => import('./details.vue'));
const BatchEditDialog = defineAsyncComponent(() => import('./batchedit.vue'));
const ImportDialog = defineAsyncComponent(() => import('./import.vue'));

const stateProcessRoute = reactive({});

const searchDataProcessRoute = ref({
	RoutingName: '',
	RoutingCode: '',
	ProductId: null,
	ProductCode: '',
	ProductName: '',
	Active: undefined,
	Aux_1: '',
	Aux_2: '',
	CreateTime: undefined,
	UpdateTime: undefined,
	CreateBy: '',
	UpdateBy: '',
});

// 定义变量内容
const tableRefProcessRoute = ref();
const tableDataProcessRoute = ref({
	// 列表数据（必传）
	data: [],
	// 表头内容（必传，注意格式）
	header: [
		{ title: ci.proxy.$t('message.autotrans.Page工艺路线名称'), key: 'ProcessRoute_RoutingName', type: 'text', isCheck: true },
		{ title: ci.proxy.$t('message.autotrans.Page工艺路线编码'), key: 'ProcessRoute_RoutingCode', type: 'text', isCheck: true },
		// {title:ci.proxy.$t('message.autotrans.Page产品'),key: 'ProcessRoute_ProductId',type: 'text',isCheck: true},
		{ title: ci.proxy.$t('message.autotrans.Page产品编码'), key: 'ProcessRoute_ProductCode', type: 'text', isCheck: true },
		{ title: ci.proxy.$t('message.autotrans.Page产品名称'), key: 'ProcessRoute_ProductName', type: 'text', isCheck: true },
		{ title: ci.proxy.$t('message.autotrans.Page激活'), key: 'ProcessRoute_Active', type: 'switch', isCheck: true },
		{ title: ci.proxy.$t('message.autotrans._AdminCreateTime'), key: 'ProcessRoute_CreateTime', type: 'text', isCheck: true },
		{ title: ci.proxy.$t('message.autotrans._AdminUpdateTime'), key: 'ProcessRoute_UpdateTime', type: 'text', isCheck: true },
		{ title: ci.proxy.$t('message.autotrans._AdminCreateBy'), key: 'ProcessRoute_CreateBy', type: 'text', isCheck: true },
		{ title: ci.proxy.$t('message.autotrans._AdminUpdateBy'), key: 'ProcessRoute_UpdateBy', type: 'text', isCheck: true },
	],
	// 配置项（必传）
	config: {
		total: 0, // 列表总数
		loading: true, // loading 加载
		isSerialNo: true, // 是否显示表格序号
		isSelection: true, // 是否显示表格多选
		isOperate: true, // 是否显示表格操作栏
	},
});
// 初始化表格数据
const getTableDataProcessRoute = () => {
	tableRefProcessRoute.value.doSearch(processrouteApi().search, searchDataProcessRoute.value).catch((error: any) => {
		other.setFormError(ci, error);
	});
};
const OnCreateClick = () => {
	other.openDialog(ci.proxy.$t('message.autotrans.SysCreate'), CreateDialog, null, getTableDataProcessRoute);
};

const OnEditrowClick = (row: any) => {
	other.openDialog(ci.proxy.$t('message.autotrans.SysEdit'), EditDialog, row, getTableDataProcessRoute,'80%');
};

const OnDetailsrowClick = (row: any) => {
	other.openDialog(ci.proxy.$t('message.autotrans.Page详情'), DetailsDialog, row, getTableDataProcessRoute);
};

// 删除
const onDelete = (row: any) => {
	processrouteApi()
		.delete([row.ID])
		.then(() => {
			getTableDataProcessRoute();
		});
};

const onBatchDelete = () => {
	const selectedrows = tableRefProcessRoute.value.getSelectedRows();
	const selectedids = selectedrows.map((x: any) =>  x.ID);
	if (selectedids.length > 0)
		processrouteApi()
			.delete(selectedids)
			.then(() => {
				getTableDataProcessRoute();
			});
	else ElMessage.error(ci.proxy.$t('message._system.common.vm.check'));
};

const OnBatchEditClick = () => {
	const selectedrows = tableRefProcessRoute.value.getSelectedRows();
	const selectedids = selectedrows.map((x: any) => x.ID);
	if (selectedids.length > 0) other.openDialog(ci.proxy.$t('message.autotrans.SysBatchEdit'), BatchEditDialog, selectedids, getTableDataProcessRoute);
	else ElMessage.error(ci.proxy.$t('message._system.common.vm.check'));
};

const OnImportClick = () => {
	other.openDialog(ci.proxy.$t('message.autotrans.SysImport'), ImportDialog, null, getTableDataProcessRoute);
};

const onExport = () => {
	const selected = tableRefProcessRoute.value.getSelectedRows();
	if (selected.length > 0) {
		processrouteApi().exportById(selected.map((x: any) => x.ID));
	} else {
		processrouteApi().export({});
	}
};

// 页面加载时
onMounted(() => {
	getTableDataProcessRoute();
});

// 暴露变量
defineExpose({});
</script>

<style scoped lang="scss"></style>
